package com.ppt.android.buildsrc

/**
 * 项目依赖版本统一管理
 *
 * @author ZouJiaCai
 * @since 4/24/21 4:00 PM
 */
object DependencyConfig {

    /**
     * 依赖版本号
     *
     * @author ZouJiaCai
     * @since 4/24/21 4:01 PM
     */
    object Version {

        // AndroidX--------------------------------------------------------------
        const val AppCompat = "1.3.1"
        const val CoreKtx = "1.12.0"
        const val ConstraintLayout = "2.1.3"                // 约束布局
        const val TestExtJunit = "1.2.1"
        const val TestEspresso = "3.6.0"
        const val ActivityKtx = "1.5.1"
        const val FragmentKtx = "1.5.2"
        const val ViewPager2 = "1.1.0-alpha01"

        // Android---------------------------------------------------------------
        const val Junit = "4.13"
        const val Material = "1.5.0"                        // 材料设计UI套件

        // Kotlin----------------------------------------------------------------
        const val Kotlin = "1.8.0"
        const val Coroutines = "1.7.3"                      // 协程

        // JetPack---------------------------------------------------------------
        const val Lifecycle = "2.6.2"                       // Lifecycle相关（ViewModel & LiveData & Lifecycle）
        const val Hilt = "2.47"                        // DI框架-Hilt

        // GitHub----------------------------------------------------------------
        const val OkHttp = "4.9.0"                          // OkHttp
        const val OkHttpInterceptorLogging = "4.9.1"        // OkHttp 请求Log拦截器

        const val Retrofit = "2.9.0"                        // Retrofit
        const val RetrofitConverterGson = "2.9.0"           // Retrofit Gson 转换器
        const val Gson = "2.8.7"                            // Gson
        const val MMKV = "2.2.4"                            // 腾讯 MMKV 替代SP
        const val AutoSize = "1.2.1"                        // 屏幕适配

        const val RecyclerViewAdapter = "3.0.4"             // RecyclerViewAdapter
        const val EventBus = "3.2.0"                        // 事件总线
        const val PermissionX = "1.7.1"                     // 权限申请
        const val AutoService = "1.0"                       // 自动生成SPI暴露服务文件
        const val SmartRefreshLayout = "2.0.5"              // SmartRefreshLayout
        const val Glide = "4.15.0"                          // Glide


        const val OKHttpUtils = "2.6.2"                     // OKHttpUtils

        const val ViewbindingKtx = "2.1.0"                  //viewbinding-ktx


    }

    /**
     * AndroidX相关依赖
     *
     * @author ZouJiaCai
     * @since 4/24/21 4:01 PM
     */
    object AndroidX {
        const val AndroidJUnitRunner = "androidx.test.runner.AndroidJUnitRunner"
        const val AppCompat = "androidx.appcompat:appcompat:${Version.AppCompat}"
        const val CoreKtx = "androidx.core:core-ktx:${Version.CoreKtx}"
        const val ConstraintLayout =
            "androidx.constraintlayout:constraintlayout:${Version.ConstraintLayout}"
        const val ActivityKtx = "androidx.activity:activity-ktx:${Version.ActivityKtx}"
        const val FragmentKtx = "androidx.fragment:fragment-ktx:${Version.FragmentKtx}"
        const val ViewPager2 = "androidx.viewpager2:viewpager2:${Version.ViewPager2}"
    }

    /**
     * Android相关依赖
     *
     * @author ZouJiaCai
     * @since 4/24/21 4:02 PM
     */
    object Android {
        const val Material = "com.google.android.material:material:${Version.Material}"
    }

    /**
     * JetPack相关依赖
     *
     * @author ZouJiaCai
     * @since 4/24/21 4:02 PM
     */
    object JetPack {
        const val ViewModel = "androidx.lifecycle:lifecycle-viewmodel-ktx:${Version.Lifecycle}"
        const val ViewModelSavedState =
            "androidx.lifecycle:lifecycle-viewmodel-savedstate:${Version.Lifecycle}"
        const val LiveData = "androidx.lifecycle:lifecycle-livedata-ktx:${Version.Lifecycle}"
        const val Lifecycle = "androidx.lifecycle:lifecycle-runtime-ktx:${Version.Lifecycle}"
        const val LifecycleCompilerAPT =
            "androidx.lifecycle:lifecycle-compiler:${Version.Lifecycle}"
        const val HiltCore = "com.google.dagger:hilt-android:${Version.Hilt}"
        const val HiltApt = "com.google.dagger:hilt-compiler:${Version.Hilt}"


    }

    /**
     * Kotlin相关依赖
     *
     * @author ZouJiaCai
     * @since 4/24/21 4:02 PM
     */
    object Kotlin {
        const val Kotlin = "org.jetbrains.kotlin:kotlin-stdlib:${Version.Kotlin}"
        const val CoroutinesCore =
            "org.jetbrains.kotlinx:kotlinx-coroutines-core:${Version.Coroutines}"
        const val CoroutinesAndroid =
            "org.jetbrains.kotlinx:kotlinx-coroutines-android:${Version.Coroutines}"
        //
        //
        //
        //
    }

    /**
     * GitHub及其他相关依赖
     *
     * @author ZouJiaCai
     * @since 4/24/21 4:02 PM
     */
    object GitHub {
        const val OkHttp = "com.squareup.okhttp3:okhttp:${Version.OkHttp}"
        const val OkHttpInterceptorLogging =
            "com.squareup.okhttp3:logging-interceptor:${Version.OkHttpInterceptorLogging}"
        const val Retrofit = "com.squareup.retrofit2:retrofit:${Version.Retrofit}"
        //json 转换器
        const val RetrofitConverterGson = "com.squareup.retrofit2:converter-gson:${Version.RetrofitConverterGson}"
        //数据流 转换器
        const val RetrofitScalars = "com.squareup.retrofit2:converter-scalars:${Version.RetrofitConverterGson}"
        const val Gson = "com.google.code.gson:gson:${Version.Gson}"
        const val MMKV = "com.tencent:mmkv:${Version.MMKV}"
        const val AutoSize = "me.jessyan:autosize:${Version.AutoSize}"

        const val RecyclerViewAdapter =
            "com.github.CymChad:BaseRecyclerViewAdapterHelper:${Version.RecyclerViewAdapter}"
        const val EventBus = "org.greenrobot:eventbus:${Version.EventBus}"
        const val EventBusAPT = "org.greenrobot:eventbus-annotation-processor:${Version.EventBus}"
        const val PermissionX = "com.guolindev.permissionx:permissionx:${Version.PermissionX}"


        const val AutoService = "com.google.auto.service:auto-service:${Version.AutoService}"
        const val AutoServiceAnnotations =
            "com.google.auto.service:auto-service-annotations:${Version.AutoService}"

        const val SmartRefreshLayout = "io.github.scwang90:refresh-layout-kernel:${Version.SmartRefreshLayout}"
        const val SmartRefreshLayoutHeaderMaterial =
            "io.github.scwang90:refresh-header-material:${Version.SmartRefreshLayout}"
        const val SmartRefreshLayoutFooter = "io.github.scwang90:refresh-footer-classics:${Version.SmartRefreshLayout}"

        const val Glide = "com.github.bumptech.glide:glide:${Version.Glide}"
        const val GlideCompiler = "com.github.bumptech.glide:compiler:${Version.Glide}"

        const val OKHttpUtils = "com.zhy:okhttputils:${Version.OKHttpUtils}"


        const val ViewBindingKtx =
            "com.github.DylanCaiCoding.ViewBindingKTX:viewbinding-brvah:${Version.ViewbindingKtx}"




    }

}